import axios from '@/ajax/ajax.js'

/*
2018-08-23
@lane
@thamiti@163.com
*/

// ------------------------------------------------

/*
* 定位社区  get_position
* */
function get_position(callback) {
  console.log("get_position")
  plus.geolocation.getCurrentPosition(function (p) {
    // alert(p.addresses)
    console.log(p.coords.longitude+"---"+p.coords.latitude)
    axios.post("api/Wisdom/get_add", {
      longitude: p.coords.longitude,
      latitude: p.coords.latitude,
      l: '',
      y: ''
    }).then(data => {
      mui.toast('定位社区成功')
      console.log("定位社区成功")

      var arr = {
        "name": data.data.name,
        "id": data.data.bid,
        'sqid': data.data.sqid,
      }
      console.log(JSON.stringify(arr))
      callback(arr)

    }).catch(res => {
      mui.toast("服务器错误")
      console.log(JSON.stringify(res))
    });
  }, function (e) {
    mui.toast("定位失败")
    // util.log('Geolocation error: ' + e.message);
  }, {

    });
}
// -----------------------------------------------------
/*
* 获取位置信息  get_location_info
*
* */
function get_location_info(callback) {
  plus.geolocation.getCurrentPosition(function (p) {

    callback(p)
  }, function (e) {
    mui.toast("定位失败")
    // util.log('Geolocation error: ' + e.message);
  }, {
  //  参数
  });
}
/*
定位成功返回数据格式
{
  "coordsType": "gcj02",
  "address": {
    "country": "中国",
    "province": "陕西省",
    "city": "西安市",
    "district": "未央区",
    "street": "凤城二路",
    "streetNum": "110号",
    "poiName": "中国银行(西安经济开发区支行)",
    "cityCode": "029"
  },
  "addresses": "陕西省西安市未央区凤城二路靠近中国银行(西安经济开发区支行)",
  "coords": {
    "latitude": 34.317627,
    "longitude": 108.944009,
    "accuracy": 30,
    "altitude": 0,
    "heading": null,
    "speed": 0,
    "altitudeAccuracy": 0
  },
  "timestamp": 1535185525570
}
*/


/*
* 支付模块
*   传入 订单号
*   入口  pay_fun()
*
* */

// 获取支付通道
function get_pay_channel(cb) {
  plus.payment.getChannels(function (paylist) {
    var ali_pay = null;
    var wx_pay = null;
    // alert("支付渠道-->"+JSON.stringify(paylist))
    // 必须从业务服务器获取支付信息
    for (var i = 0; i < paylist.length; i++) {
      if (paylist[i].id == 'alipay') {
        ali_pay = paylist[i]
      };
      if (paylist[i].id == 'wxpay') {
        wx_pay = paylist[i]
      }
    }
    cb({
      wx_pay: wx_pay,
      ali_pay: ali_pay
    })
  }, function (err) {
    alert(JSON.stringify(err));
  });
}
// 发起支付
function pay(pay_type, pay_info, callback) {

  if (!pay_type.serviceReady) {
    pay_type.installService();
  }
  // alert("发起支付");
  // alert(JSON.stringify(pay_type));
  plus.payment.request(pay_type, pay_info, function () {
    //							支付成功回调
    callback()

  }, function (e) {
			// alert("支付失败：" + e.message);
    mui.toast("支付失败")
  });

}
//获取支付凭证
function get_wx_statement(order_num, callback) {
  // do ajax get statement...
  // alert("获取支付凭证-->"+order_num)
  axios.post("app/Pay/getPrePayOrder",
    "order_no="+order_num,
    ).then(res=>{
      callback(res)
  }).catch(err=>{
    alert(err);
    mui.toast("获取支付凭证失败")
  })
}
function pay_fun(order_num,succ_callback) {
  // alert("订单号-->"+order_num)
  get_pay_channel(function (paylist) {
    // 获取支付通道成功回调
    // 创建订单信息
    get_wx_statement(order_num, function (statement) {
      // 获取微信支付凭证回调
      console.log("------微信支付凭证------")
      // alert("------微信支付凭证------\n"+JSON.stringify(statement))
      console.log("------微信支付凭证------\n"+JSON.stringify(statement))
      pay(paylist.wx_pay, statement, function () {
        axios.post(
          "app/Pay/notify_urls",
          "order_no="+order_num+
          "&status=1"
        ).then(res=>{
          succ_callback(order_num);
        })
      })
    })

  })
}

import share_msg from "./share_msg_config"
const get_share= function(callback) {
  console.log("get_share")
  plus.share.getServices(

    function(e) {
      console.log(JSON.stringify(e))
      var share_list = {};


      for(var i = 0; i < e.length; i++) {

        if(e[i].id == "weixin") {
          share_list.weixin = e[i]
        }

      };
      console.log(JSON.stringify(share_list))
      callback(share_list);
    },

    function(e) {
      console.log(e)
    }
  );
};


//分享操作
function shareAction(s,msg) {
  if ( !s ) {
    return;
  }
  if ( s.authenticated ) {
    shareMessage( s,msg );
  } else {
    s.authorize( shareMessage, function(e){
      alert( "未进行认证" );
    });
  }
}
//发送分享消息
function shareMessage(s,msg){
  s.send( msg, function(){
    mui.toast( "分享成功！" );
  }, function(e){
    mui.toast( "分享失败！" );
//		alert( "分享失败："+e.message );
  } );
}




function check_boot_stype(share_goods_cb,share_group_cb) {
  // 判断启动方式

  checkArguments();
  function GetQueryString(k, str) {

    if(str.search(k) > 0) {
      var arr = str.split("?");
      var res_arr = arr[1].split("&");
      var res = {};
      for(var i = 0; i < res_arr.length; i++) {
        var item = res_arr[i].split("=");
        res[item[0]] = item[1];
      }
      return res[k];
    }

    return false;
  }

  function checkArguments() {
    // 模拟测试
    /*
    var plus = {
      runtime:{}
    }
    console.log(123)
    plus.runtime.launcher = "scheme";
    plus.runtime.arguments = "zhsq://share_group?id=1572&sid=108"
    */
    if(plus.runtime.launcher == "default") {
      return
    } else if(plus.runtime.launcher == "scheme") {
      var args = plus.runtime.arguments;
      			console.log(JSON.stringify(args));
      			// alert(JSON.stringify(args))
      if(args) {

        var type = args.split("?")[0].split("//")[1];
        var id = GetQueryString("id", args)
        var sid = GetQueryString("sid", args);
        console.log('id-->' + id);
        // alert('id-->' + id)
        console.log('sid-->' + sid)
        // alert('sid-->' + sid)

        if(type == "share_goods") {
          // 分享类型为商品时 回调，参数商品ID
          console.log("分享类型为商品时 回调，参数商品ID")
          // alert("分享类型为商品时 回调，参数商品ID")
          share_goods_cb(id)

        }
        if(type == "share_group") {
          // 分享类型为拼团时的回调，参数为 商品ID SID
          console.log("分享类型为拼团时的回调，参数为 商品ID SID")
          // alert("分享类型为拼团时的回调，参数为 商品ID SID")
          share_group_cb(id,sid)
        }

      }
    }
  }
// 处理从后台恢复
  document.addEventListener('newintent', function() {
    console.log("addEventListener: newintent");
    checkArguments();
  }, false);
}


// 定位后获取最近的社区信息  get_position
// 获取位置信息   get_location_info
// 支付方法    pay_fun
// 分享方法    share_func
// 检查启动方式  check_boot_stype
export default {
  get_position,
  get_location_info,
  pay_fun,
  get_share,
  shareAction,
  check_boot_stype,
}
